// 引入 express 框架
const express = require('express');
const path = require('path');

// 实例化一个 服务器对象
const app = express();

// 引入中间件
const checkJWTMiddleWare = require('./middleWare/checkJWTMiddleWare');

// 引入了项目的路由文件
const login_router = require('./router/login');
const store_router = require('./router/store');

// 设置允许跨域请求
app.use(function (req, res, next) {
    // 添加允许跨域的请求头
    // 设置允许跨域的源为所有源
    res.setHeader('Access-Control-Allow-Origin', '*');
    // 设置允许的HTTP方法为所有方法
    res.setHeader('Access-Control-Allow-Methods', '*');
    // 设置允许的请求头为所有头
    res.setHeader('Access-Control-Allow-Headers', '*');
    // 解决预检请求
    if (req.method === 'OPTIONS') {
        res.sendStatus(200);
        return;
    }
    // 进行下一个路由的调用
    next();
});

// 配置静态资源目录
app.use(express.static(path.join(__dirname, 'public')));

// 配置解析 json 数据的中间件
app.use(express.json());

// 服务器挂载中间件的逻辑
app.use('/login', login_router);
app.use(checkJWTMiddleWare);        // 这个中间件会验证用户登录的状态
app.use('/store', store_router);

// 将服务器启动在3000端口
app.listen(3000, () => { 
    console.log('Server started on port 3000');
});